import random
from Autotests.Suites.StressTest.Operations.ClientOperations import ClientOperations
from Autotests.Suites.StressTest.Operations.JobOperations import JobOperations
from Autotests.Suites.StressTest.Operations.CommonOperations import CommonOperations
from Autotests.Suites.StressTest.Operations.AccountOperations import AccountOperations
from Autotests.Suites.StressTest.Operations.PartnerOperations import PartnerOperations
from Autotests.Suites.StressTest.Operations.StorageNodeOperations import StorageNodeOperations
from Autotests.Suites.StressTest.Operations.StorageOperations import StorageOperations
from Autotests.Suites.StressTest.Operations.UserOperations import UserOperations
from Autotests.Suites.StressTest.Operations.ProductOperations import ProductOperations
from Autotests.Suites.StressTest.Operations.LocationOperations import LocationOperations
from Autotests.Suites.StressTest.Operations.NotificationOperations import NotificationOperations


class OperationGroups:
    def __init__(self):
        self.operationsGroup1 = [
            ClientOperations,
            CommonOperations,
            AccountOperations,
            JobOperations,
            LocationOperations,
            NotificationOperations,
            PartnerOperations,
            ProductOperations,
            StorageOperations,
            StorageNodeOperations,
            UserOperations
        ]

        self.operationsGroup = [
            CommonOperations,
        ]

    def getClientIndex(self):
        return 0

    def getRandomOperationsGroup(self):
        groupIndex = random.randint(0, len(self.operationsGroup) - 1)
        randomGroup = self.operationsGroup[groupIndex]()
        return randomGroup
